#include "key_app.h"

//#define KEY_GPIO_PORT HT_GPIOB
//#define KEY_GPIO_PIN GPIO_PIN_13


u8 key_val = 0; // 当前按键状态
u8 key_old = 0; // 前一按键状态
u8 key_down = 0; // 按下的按键
u8 key_up = 0; // 释放的按键
u8 BUZZ_flag = 0;
/*
* @brief 读取按键状态
*
* 该函数读取连接在 GPIO 引脚上的按键状态，并返回相应的按键编号。
*
* @return 返回按键编号。0 表示没有按键按下，1-4 表示对应的按键被按下。
*/
//u8 key_read(void)
//{
//    u8 temp = 0;
//	
//    if(GPIO_ReadInBit(HT_GPIOA, GPIO_PIN_7) == RESET)
//        temp = 1; 

//    return temp;
//}

void key_proc(void)
{
	
//    //读取当前按键状态
//    key_val = key_read();
//    //计算按下的按键（当前按下状态与前一状态异或，并与当前状态相与）
//    key_down = key_val & (key_old ^ key_val);
//    //计算释放的按键（当前未按下状态与前一状态异或，并与前一状态相与）
//    key_up = ~key_val & (key_old ^ key_val);
//    //更新前一按键状态
//    key_old = key_val;
		
	// 读取按键状态
    key_val = GPIO_ReadInBit(KEY_GPIO_PORT, KEY_GPIO_PIN);

    // 判断按键是否按下
    if (key_val == RESET && key_old == SET)
    {
        key_down = 1; // 设置按键按下标志
        key_up = 0;   // 清除按键释放标志
				BUZZ_flag ^= 1;		
    }
    else if (key_val == SET && key_old == RESET)
    {
        key_down = 0; // 清除按键按下标志
        key_up = 1;   // 设置按键释放标志
    }

    // 更新按键状态
    key_old = key_val;
		
		
		
}




